/*
 * Application Name: 工作票信息管理系统
 * Desc: 待办工作票
 * Author: Albert 
 * Date: 2009-07-19
 */

Ext.extend(workpaper.baseModule,{	
	
    init: function(){
    	this.ds = new workpaper.store.dealPaper.waitingStore();	 
    	this.ds.load();   	 	
	    /*
	    this.myData = [['ZS20090719235411001', '待签发', '热力机械工作票', '已填写','2009年7月20日 12:00～2009年7月20日 19:00', '文珠穆','2009/07/20 15:18:09', '检修部', '小郭'], ['ZS20090719235411002', '待签发', '热控工作票', '已填写','2009年7月21日 12:00～2009年7月21日 19:00', '文珠穆', '2009/07/20 15:18:09','检修部', '小郭']];
	    this.ds = new Ext.data.SimpleStore({
	        fields: [
	        {name: 'paperId'},
	        {name: 'waitingType'},
	        {name: 'paperType'},
	        {name: 'paperStatus'},
	        {name: 'planTime'},
	        {name: 'principal'},
	        {name: 'arriveTime'},
	        {name: 'workDept'},
	        {name: 'transactor'}                    
	        ]
	    });
	    this.ds.loadData(this.myData);
	    */
	    this.cm = new Ext.grid.ColumnModel([{
	           id: 'paperId',
	           header: "工作票编号",
	           dataIndex: 'paperId',
	           width: 70,
	           align: 'center',
	           hidden: false,
	           sortable: true,
	           renderer: this.gotoDealPaper 
	        },{
	           id: 'waitingType',
	           header: "待办类型",
	           dataIndex: 'waitingType',
	           width: 70,
	           align: 'center',
	           hidden: false,
	           sortable: true
	           //renderer: app.dealPaper.waitingPaper.Renderers.topic 
	        },{
	           id: 'paperType',
	           header: "工作票类型",
	           dataIndex: 'paperType',
	           width: 70,
	           align: 'center',
	           hidden: false,
	           sortable: true
	           //renderer: app.dealPaper.waitingPaper.Renderers.topic           
	        },{
	           id: 'paperStatus',
	           header: "工作票状态",
	           dataIndex: 'paperStatus',
	           width: 70,
	           align: 'center',
	           hidden: false,
	           sortable: true
	           //renderer: app.dealPaper.waitingPaper.Renderers.topic 
	        },{
	           id: 'planTime',
	           header: "计划工作时间段",
	           dataIndex: 'planTime',
	           width: 70,
	           align: 'center',
	           hidden: false,
	           sortable: true
	           //renderer: app.dealPaper.waitingPaper.Renderers.topic           
	        },{
	           id: 'principal',
	           header: "工作负责人",
	           dataIndex: 'principal',
	           width: 70,
	           align: 'center',
	           hidden: false,
	           sortable: true
	           //renderer: app.dealPaper.waitingPaper.Renderers.topic           
	        },{
	           id: 'arriveTime',
	           header: "发起请求时间",
	           dataIndex: 'arriveTime',
	           width: 70,
	           align: 'center',
	           hidden: false,
	           sortable: true
	           //renderer: app.dealPaper.waitingPaper.Renderers.topic           
	        },{
	           id: 'workDept',
	           header: "工作部门",
	           dataIndex: 'workDept',
	           width: 70,
	           align: 'center',
	           hidden: true,
	           sortable: true
	           //renderer: app.dealPaper.waitingPaper.Renderers.topic           
	        },{
	           id: 'transactor',
	           header: "当前处理人或角色",
	           dataIndex: 'transactor',
	           width: 70,
	           align: 'center',
	           hidden: true,
	           sortable: true
	           //renderer: app.dealPaper.waitingPaper.Renderers.topic           
	        }	        
	        ]);
	    this.cm.defaultSortable = true;	    
        this.sm = new Ext.grid.RowSelectionModel({
            singleSelect:true
            /*
            listeners: {
                selectionchange: function(sel){
                    var rec = sel.getSelected();
                    if(rec){
                        Ext.getCmp('preview').body.update('<b><u>' + rec.get('title') + '</u></b><br /><br />Post details here.');
                    }
                }
            }
            */
        });   
		
	    this.propsGridBottom = new Ext.grid.PropertyGrid({
	        id: 'prop-grid_bottom_m101',	        
	        autoWidth: true,
	        width: 600,
	        layout: 'fit',	               	       
	        columnLines : true,	           	
	        propertyNames: {	            
				paperId : '工作票编号',
				waitingType : '待办类型',
				paperType : '工作票类型',
				paperStatus : '工作票状态',
				planTime : '计划工作时间段',
				principal : '工作负责人',
				arriveTime : '发起请求时间',
				workDept : '工作部门',
				transactor : '当前处理人或角色',
				task : '工作内容',
				workUnit : '工作班组',
				workers : '工作班成员',
				fillMan : '填写人',
				fillTime : '填写时间',
				sendOutMan : '签发人',
				sendOutTime : '签发时间',
				signInMan : '签收人',
				signInTime : '签收时间',
				permissiveMan : '工作许可人',
				permissiveTime : '许可时间'	            
	        },	        
	        source: {
				paperId : 'ZS20090719235411001',
				waitingType : '待签发',
				paperType : '热力机械工作票',
				paperStatus : '已填写',
				planTime : '2009年7月20日 12:00～2009年7月20日 19:00',
				principal : '文珠穆',
				arriveTime : '2009/07/20 15:18:09',
				workDept : '检修部',
				transactor : '小郭',
				
				task : '(工作内容)',
				workUnit : '(工作班组)',
				workers : '(工作班成员)',
				fillMan : '(填写人)',
				fillTime : '(填写时间)',
				sendOutMan : '(签发人)',
				sendOutTime : '(签发时间)',
				signInMan : '(签收人)',
				signInTime : '(签收时间)',
				permissiveMan : '(工作许可人)',
				permissiveTime : '(许可时间)'
	        },
	        viewConfig : {
	            forceFit: true,	            
	            scrollOffset: 19 // the grid will never have scrollbars
	        }
	    });		
	    
	    this.propsGridRight = new Ext.grid.PropertyGrid({
	        id: 'prop-grid_right_m101',
	        autoHeight: true,
	        width: 200,
	        layout: 'fit',	                	       
	        columnLines : true,	           	
	        propertyNames: {	            
				paperId : '工作票编号',
				waitingType : '待办类型',
				paperType : '工作票类型',
				paperStatus : '工作票状态',
				planTime : '计划工作时间段',
				principal : '工作负责人',
				arriveTime : '发起请求时间',
				workDept : '工作部门',
				transactor : '当前处理人或角色',
				task : '工作内容',
				workUnit : '工作班组',
				workers : '工作班成员',
				fillMan : '填写人',
				fillTime : '填写时间',
				sendOutMan : '签发人',
				sendOutTime : '签发时间',
				signInMan : '签收人',
				signInTime : '签收时间',
				permissiveMan : '工作许可人',
				permissiveTime : '许可时间'	            
	        },	        
	        source: {
				paperId : 'ZS20090719235411001',
				waitingType : '待签发',
				paperType : '热力机械工作票',
				paperStatus : '已填写',
				planTime : '2009年7月20日 12:00～2009年7月20日 19:00',
				principal : '文珠穆',
				arriveTime : '2009/07/20 15:18:09',
				workDept : '检修部',
				transactor : '小郭',
				
				task : '(工作内容)',
				workUnit : '(工作班组)',
				workers : '(工作班成员)',
				fillMan : '(填写人)',
				fillTime : '(填写时间)',
				sendOutMan : '(签发人)',
				sendOutTime : '(签发时间)',
				signInMan : '(签收人)',
				signInTime : '(签收时间)',
				permissiveMan : '(工作许可人)',
				permissiveTime : '(许可时间)'
	        },
	        viewConfig : {
	            forceFit: true,	            
	            scrollOffset: 2 // the grid will never have scrollbars
	        }
	    });		

	    this.propsGridBottom.on("beforeedit", function(e){  
			e.cancel = true;  
			return false;  
		}); 
		
	    this.propsGridRight.on("beforeedit", function(e){  
			e.cancel = true;  
			return false;  
		}); 	    	
		
	    this.waitingPanel = new Ext.Panel({
	        id:'main-view_m101',	                       
	        layout:'border',	        
	        //title:'待办工作票',
	        items:[
	            new Ext.grid.GridPanel({
	            	layout:'fit',
	                region:'center',
	                stripeRows:true,
	                columnLines : true,
	                autoWidth : true, 	                
	                id:'main-grid_m101',	                
	                store: this.ds,
	                cm: this.cm,
	                sm: this.sm,
	                //trackMouseOver:false,
                    viewConfig: {
                        forceFit:true,
                        enableRowBody:true,
                        showPreview:true
                    },	                	               
	                tbar:[	                
	                    {	                        
	                        id: 'up_down_btn_m101',	                        
	                        text:'上下模式',	                        
	                        tooltip: {title:'',text:'上下分栏索引显示'},
	                        iconCls: 'preview-bottom',
	                        handler: this.togglePreview
	                    },
	                    '-',
	                    {	                        
	                        id: 'left_right_btn_m101',	                        
	                        text:'左右模式',
	                        tooltip: {title:'',text:'左右分栏索引显示'},
	                        iconCls: 'preview-right',
	                        handler: this.togglePreview
	                    },
	                    '-',
	                    {	                        
	                        id: 'no_btn_m101',	                        
	                        text:'隐藏模式',
	                        tooltip: {title:'',text:'隐藏详细信息栏'},
	                        iconCls: 'preview-hide',
	                        handler: this.togglePreview
	                    }
	                ],
	                bbar: new Ext.PagingToolbar({
	                	id: 'pageable_btn_m101',	                	
	                    pageSize: 25,
	                    store: this.ds,
	                    displayInfo: true,
	                    displayMsg: '当前用户的待办工作票：第 {0} 至第 {1} 条， 共 {2} 条记录'	                    
	                })
	            }),                    
	 			{
	                id:'bottom-preview_m101',
	                collapsible: true,
	                title: '待办工作票详细信息',
	                layout:'fit',	                                
	                height: 250,
	                split:true,	                
	                autoScroll: true,
	                items: [this.propsGridBottom],	                	                
	                region:'south'
	            },
	            {
	                id:'right-preview_m101',
	                title: '待办工作票详细信息',
	                layout:'fit',	                
	                split:true,	                
	                autoScroll: true,	                
	                region:'east',
	                width:350,	                
	                items: [this.propsGridRight],	                
	                hidden:true
	            }                         
	         ]
	     });
	     Ext.getCmp("main-grid_m101").on("dblclick",this.showProp,this);    	
        this.tab.add(this.waitingPanel);        
        this.tab.doLayout();
        this.tabPanel.ownerCt.doLayout();//没有这句下方的5px空白不会自动显示出来        
    },
    
    destroy: function(){
    	this.togglePreview = null;    	
		Ext.destroy(this.ds,
					this.cm,
					this.sm,					
					Ext.getCmp("up_down_btn_m101"),
					Ext.getCmp("left_right_btn"),
					Ext.getCmp("no_btn_m101"),
					Ext.getCmp("pageable_btn_m101"),
					Ext.getCmp("main-grid_m101"),
					this.waitingPanel,
					Ext.getCmp("prop-grid_bottom_m101"),
					Ext.getCmp("prop-grid_right_m101"),
					Ext.getCmp("bottom-preview_m101"),
					Ext.getCmp("right-preview_m101")
		);
		this.init = null;
    },    
    
    showProp : function(eventObject){		   	
    	alert("将把当前行对应的信息显示到下方和右方的properties里");
    },
    
    gotoDealPaper : function(val){
    	return '<a href="#" onclick="alert(\'将新建一个tab跳转到对应工作票的处理页面\')">' + val + '</a>';
    },
    
    togglePreview : function(btn, pressed){
    	var btnIconCls = btn.iconCls;
    	var right = Ext.getCmp('right-preview_m101');
        var bot = Ext.getCmp('bottom-preview_m101');
        var main = Ext.getCmp('main-view_m101');
    	if(btnIconCls == 'preview-bottom'){    		
	        right.hide();	        
	        bot.show();
	        bot.ownerCt.doLayout();   		
    	}
    	else if(btnIconCls == 'preview-right'){
	        bot.hide();	        
	        right.show();
	        right.ownerCt.doLayout();    		
    	}
    	else{    		
 	        bot.hide();	        
	        right.hide();
            main.ownerCt.ownerCt.doLayout();	        		
    	}
    }
}); 
